#ifndef CAMERA_H
#define CAMERA_H

#include "../Core/Messages.h"
#include "vector.h"
#include "matrix.h"

#include <d3d9.h>
#include <d3dx9.h>
#include <d3dx9core.h>


class Renderer;

class Camera
{

public:
	Camera();
	~Camera();

    void HandleMessages();
	void Update();

    void MakeViewMatrix();

    D3DXMATRIX GetViewMatrix() { return m_DxViewMatrix; }
private:

	void handleMessage(CameraMessage &camMess);


private:

    D3DXVECTOR3 m_DxPosition;
    D3DXVECTOR3 m_DxLookat;
    D3DXVECTOR3 m_DxUpvector;

    D3DXMATRIX m_DxViewMatrix;

    float m_RollSpeed;
    float m_StrafeSpeed;
    float m_MoveSpeed;

};

#endif // CAMERA_H

